<!DOCTYPE html>
<html>
<head>
<link rel="preload" href="https://www.xingzhenghang.tk/js/platform.js" as="script" />
<title>Open GApps 项目非官方中文站</title>
<meta content="chrome=1" http-equiv="X-UA-Compatible">
<link rel="stylesheet" type="text/css" href="https://cdn.bootcss.com/material-design-lite/1.3.0/material.teal-red.min.css" />
<!--Preload for fancy browsers-->
<link rel="preload" href="https://fonts.googleapis.com/icon?family=Material+Icons" as="style" />
<link rel="preload" href="https://fonts.googleapis.com/css?family=Roboto:400,400italic,500,700" as="style" />
<script type="text/javascript" src="https://cdn.bootcss.com/material-design-lite/1.3.0/material.min.js"></script>
<!--[if lt IE 9]>
<script type="text/javascript" src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link rel="manifest" href="//www.xingzhenghang.tk/manifest.json">
<meta charset="utf-8">
<meta name="theme-color" content="#009688">
<meta name="msapplication-TileColor" content="#009688">
<meta name="msapplication-TileImage" content="/images/ms-icon-144x144.png">
<meta name="apple-mobile-web-app-title" content="Open GApps">
<meta name="mobile-web-app-capable" content="yes">
<meta name="google-play-app" content="app-id=org.opengapps.app">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="keywords" content="open gapps, opengapps, gapps, android, daily, arm, arm64, x86, x86_64, 4.4, 5.0, 5.1, 6.0, 7.0, 7.1, 8.0, 8.1, 9.0, 10.0, kitkat, lollipop, marshmallow, nougat, oreo, pie, q, ten, aroma, super, stock, full, mini, micro, nano, pico, tvstock">
<meta name="description" content="OpenGApps.org offers information and pre-built packages of The Open GApps Project. The Open GApps Project is an open-source effort to script the automatic generation of up-to-date Google Apps packages. All Android versions and platforms supported.">
<html itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="OpenGApps.org">
<meta itemprop="description" content="OpenGApps.org offers information and pre-built packages of The Open GApps Project. The Open GApps Project is an open-source effort to script the automatic generation of up-to-date Google Apps packages. All Android versions and platforms supported.">
<meta itemprop="image" content="https://opengapps.org/images/opengapps.png">
<link href="http://mix.chimpfeedr.com/5b110-OpenGApps" rel="alternate" title="OpenGApps.org Releases" type="application/atom+xml" />
<style>
body{font-family:Roboto}
a{color:#009688;text-decoration:none}
img{max-width:100%}
.dt{border:0px;float:left}
.dt td{border-bottom:0px;height:50px}
.dt th{text-align:center !important}
#tp td,#tp th,#tv td,#tv th{padding-left:10px;padding-right:0}
a.wikilink i.material-icons{font-size:12px;vertical-align:middle}
:not(.is-small-screen) .container{text-align:center;max-width:800px;margin:0 auto}
:not(.is-small-screen) .advertisement{width:336px;max-width:100%;float:right;margin:10px 0}
:not(.is-small-screen) .dform{width:330px;float:left}
.footer-container{float:right;display:flex;flex-direction:column}
.is-small-screen .container,.is-small-screen .footer-container{max-width:1024px;width:100%;float:left}
.is-small-screen .advertisement{float:none;margin:10px auto;width:inherit}
.is-small-screen .dform{display:inline-block;float:none;width:330px;margin:0 auto}
.mdl-layout__content{flex-shrink:0}
.mdl-menu .mdl-menu__item{text-align:right}
.link{opacity:.8}
.link:hover{opacity:1}
.tab:hover{color:rgba(255,255,255,0.85)}
#logolink{position:absolute;padding:15px;top:0}
.is-small-screen #logolink{padding:5px}
.mdl-layout__obfuscator.is-visible, .mdl-layout__drawer{position:fixed}
#content{display:block;padding-bottom:130px}
#downloadsection{padding:30px}
.is-small-screen #downloadsection{padding:10px 0 30px 0}
.dform{background-color:white}
.downloadbuttons{text-align:left;width:100%;max-width:400px}
#package-latest{display:inline-block;padding-left:16px}
#package-progressbar{width:200px}
#bdownload{vertical-align:top;float:right;transform:translate(-24px,4px);-webkit-transform:translate(-24px,4px);-ms-transform:translate(-24px,4px)}
#bdownload:hover{background:rgba(255,82,82,0.8)}
.mdsection{max-width:800px;margin:0 auto;padding:30px}
.mdl-mini-footer{position:absolute;bottom:0;right:0;left:0;white-space:nowrap;max-height:96px}
@media screen and (max-width:532px){.mdl-mini-footer{padding:16px}}
.mdl-mini-footer__right-section i{font-size:13.3333px}
.mdl-card{margin:20px auto;display:inline-block;order:0;min-height:0}
.post-hr{border-top:1px solid rgba(0,0,0,.1)}
.is-small-screen .mdl-card{order:9}
#bota{order:5}
.mdl-layout:not(.is-small-screen) #adlabelfooter,.mdl-layout:not(.is-small-screen) #adlabelheader{text-align:center;font-style:italic;margin-bottom:8px}
.is-small-screen #adlabelfooter,.is-small-screen #adlabelheader,.mdl-layout__tab-bar-button{display:none}
#donatebox a:hover{text-decoration:underline}
#donatebox{text-decoration:none;border:0px;text-align:center;padding:10px 0 10px 0}
.is-small-screen #topa #donatebox{padding:0 0 5px}
#donatebody{display:inline-block}
#donaterectangle{width:100px;height:50px;line-height:60px;background-color:#999999;border-radius:10px;margin:0 auto}
#donaterectangle:hover{background-color:#757575}
.is-small-screen #topa #donatespace, .is-small-screen #topa #donaterectangle, .is-small-screen #topa #donatecaption{display:none}
.mdl-radio.is-disabled .mdl-radio__label a,fieldset[disabled] .mdl-radio .mdl-radio__label a{color:inherit;cursor:default}
@media screen and (min-width:480px){.mdl-snackbar{width:100%;max-width:800px}}
#facebooklink button:hover{background-color:#3b5998}#twitterlink button:hover{background-color:#00aced}#youtubelink button:hover{background-color:#bb0000}
</style>

</head>
<body class="mdl-color--grey-100 mdl-color-text--grey-700 mdl-base">
<div class="mdl-layout mdl-js-layout mdl-layout--fixed-header mdl-layout--fixed-tabs mdl-layout--overlay-drawer-button mdl-layout--no-desktop-drawer-button">
<header class="mdl-layout__header mdl-layout__header--scroll">
    <div class="mdl-layout__header-row"><a id="logolink" href="/gapps"><img id="logoimage"
                src="//opengapps.org/images/logo.svg" alt="Open GApps logo" /></a></div>
    <div class="mdl-layout__header-row" id="toplinks">
        <div class="mdl-layout-spacer"></div>
        <nav class="mdl-navigation">
            <a
                class="mdl-navigation__link link mdl-navigation__link--icon mdl-layout--large-screen-only"
                id="homelink" href="/" ><i
                    class="material-icons">home</i> Home</a><a
                class="mdl-navigation__link link mdl-navigation__link--icon mdl-layout--large-screen-only"
                id="donatelink" href="#" 
                onclick="window.paypal();return false;" ><i
                    class="material-icons">favorite</i> Donate</a><a
                class="mdl-navigation__link link mdl-navigation__link--icon mdl-layout--large-screen-only"
                id="githublink" href="https://github.com/opengapps/opengapps" ><i
                    class="material-icons">code</i> GitHub</a><a
                class="mdl-navigation__link link mdl-navigation__link--icon mdl-layout--large-screen-only"
                id="sourceforgelink" href="https://sourceforge.net/projects/opengapps/files/" ><i
                    class="material-icons">folder</i> SourceForge</a>
            <a class="mdl-navigation__link link mdl-navigation__link--icon mdl-layout--large-screen-only"
                id="pushbulletlink" href="#"><i class="material-icons">notifications</i> Pushbullet</a>
            <ul class="mdl-menu mdl-menu--bottom-right mdl-js-menu mdl-js-ripple-effect mdl-layout--large-screen-only"
                data-mdl-for="pushbulletlink">
                <a href="https://www.pushbullet.com/channel-popup?tag=opengapps">
                    <li class="mdl-menu__item">All Releases</li>
                </a><a href="https://www.pushbullet.com/channel-popup?tag=opengappsarm">
                    <li class="mdl-menu__item">ARM Releases</li>
                </a><a href="https://www.pushbullet.com/channel-popup?tag=opengappsarm64">
                    <li class="mdl-menu__item">ARM64 Releases</li>
                </a><a href="https://www.pushbullet.com/channel-popup?tag=opengappsx86">
                    <li class="mdl-menu__item">x86 Releases</li>
                </a><a href="https://www.pushbullet.com/channel-popup?tag=opengappsx86_64">
                    <li class="mdl-menu__item">x86_64 Releases</li>
                </a>
            </ul>
            <a
                class="mdl-navigation__link link mdl-navigation__link--icon mdl-layout--large-screen-only"
                id="bloglink" href="/blog" ><svg style="width:24px;height:24px;" viewBox="0 0 24 24"><path fill="currentColor" d="M20,11H4V8H20M20,15H13V13H20M20,19H13V17H20M11,19H4V13H11M20.33,4.67L18.67,3L17,4.67L15.33,3L13.67,4.67L12,3L10.33,4.67L8.67,3L7,4.67L5.33,3L3.67,4.67L2,3V19A2,2 0 0,0 4,21H20A2,2 0 0,0 22,19V3L20.33,4.67Z" /></svg><i
                    class="material-icons"></i> Blog</a>
        </nav>
    </div>
<div class="mdl-layout__tab-bar mdl-js-ripple-effect mdl-color--primary-dark mdl-shadow--2dp">
 <a href="#downloadsection" class="mdl-layout__tab is-active tab">下载</a>
 <a href="#supportsection" class="mdl-layout__tab tab">支持帮助</a>
 <a href="#aboutsection" class="mdl-layout__tab tab">关于</a>
</div>
</header>
<div class="mdl-layout__drawer"><span class="mdl-layout-title">Navigation</span>
    <nav class="mdl-navigation">
        <a class="mdl-navigation__link mdl-navigation__link--icon"
            id="homelink" href="/" ><i class="material-icons">home</i>
            OpenGapps.org <strong>Home</strong></a><a class="mdl-navigation__link mdl-navigation__link--icon"
            id="donatelink" href="#" 
            onclick="window.paypal();return false;" ><i class="material-icons">favorite</i>
            Support by <strong>Donation</strong></a><a class="mdl-navigation__link mdl-navigation__link--icon"
            id="githublink" href="https://github.com/opengapps/opengapps" ><i class="material-icons">code</i>
            Source on <strong>GitHub</strong></a><a class="mdl-navigation__link mdl-navigation__link--icon"
            id="sourceforgelink" href="https://sourceforge.net/projects/opengapps/files/" ><i class="material-icons">folder</i>
            Hosted on <strong>SourceForge</strong></a>
        <a id="pushbulletdrawer" class="mdl-navigation__link mdl-navigation__link--icon" href="#"><i
                class="material-icons">notifications</i> Follow via <strong>Pushbullet</strong></a>
        <ul class="mdl-menu mdl-menu--bottom-left mdl-js-menu mdl-js-ripple-effect" data-mdl-for="pushbulletdrawer">
            <a href="https://www.pushbullet.com/channel-popup?tag=opengapps">
                <li class="mdl-menu__item">All Releases</li>
            </a><a href="https://www.pushbullet.com/channel-popup?tag=opengappsarm">
                <li class="mdl-menu__item">ARM Releases</li>
            </a><a href="https://www.pushbullet.com/channel-popup?tag=opengappsarm64">
                <li class="mdl-menu__item">ARM64 Releases</li>
            </a><a href="https://www.pushbullet.com/channel-popup?tag=opengappsx86">
                <li class="mdl-menu__item">x86 Releases</li>
            </a><a href="https://www.pushbullet.com/channel-popup?tag=opengappsx86_64">
                <li class="mdl-menu__item">x86_64 Releases</li>
            </a>
        </ul>
        <a class="mdl-navigation__link mdl-navigation__link--icon"
            id="bloglink" href="/blog" ><svg style="width:24px;height:24px;" viewBox="0 0 24 24"><path fill="currentColor" d="M20,11H4V8H20M20,15H13V13H20M20,19H13V17H20M11,19H4V13H11M20.33,4.67L18.67,3L17,4.67L15.33,3L13.67,4.67L12,3L10.33,4.67L8.67,3L7,4.67L5.33,3L3.67,4.67L2,3V19A2,2 0 0,0 4,21H20A2,2 0 0,0 22,19V3L20.33,4.67Z" /></svg><i
                class="material-icons"></i> Open GApps <strong>Blog</strong></a>
    </nav>
</div>
<main id="content" class="mdl-layout__content">
	<section class="mdl-layout__tab-panel is-active" id="downloadsection">
		<div class="container">
			<div id="topa" class="advertisement">
				<div class="mdl-typography--caption-color-contrast" id="adlabelheader">
					Advertisement
				</div>
				<ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-9489060368971640"
				data-ad-slot="6646806677" data-ad-format="auto">
				</ins>
			</div>
			<div class="dform mdl-shadow--2dp">
				<form id="DownloadForm" name="DownloadForm">
					<table id="tp" class="dt mdl-data-table mdl-js-data-table">
						<thead>
							<tr>
								<th class="mdl-data-table__cell--non-numeric">
									<span id="tplatform">
										<strong>
											处理器
											<strong>
												:
									</span>
								</th>
							</tr>
						</thead>
						<tbody>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="arm" id="larm">
										<input id="arm" name="arch" type="radio" value="arm" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											ARM
											<a class="wikilink" href="https://github.com/opengapps/opengapps/wiki/Notes-for-Android-ARM">
												<i class="material-icons">
													&#xE895;
												</i>
											</a>
										</span>
									</label>
								</td>
							</tr>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="arm64"
									id="larm64">
										<input checked id="arm64" name="arch" type="radio" value="arm64" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											ARM64
										</span>
									</label>
								</td>
							</tr>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="x86" id="lx86">
										<input id="x86" name="arch" type="radio" value="x86" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											x86
											<a class="wikilink" href="https://github.com/opengapps/opengapps/wiki/Notes-for-Android-x86">
												<i class="material-icons">
													&#xE895;
												</i>
											</a>
										</span>
									</label>
								</td>
							</tr>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="x86_64"
									id="lx86_64">
										<input id="x86_64" name="arch" type="radio" value="x86_64" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											x86_64
										</span>
									</label>
								</td>
							</tr>
						</tbody>
					</table>
					<table id="ta" class="dt mdl-data-table mdl-js-data-table">
						<thead>
							<tr>
								<th class="mdl-data-table__cell--non-numeric">
									<span id="tandroid">
										<strong>
											Android版本
										</strong>
										:
									</span>
								</th>
							</tr>
						</thead>
						<tbody>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="10.0"
									id="l10.0">
										<input id="10.0" name="api" type="radio" value="10.0" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											10.0
											<a class="wikilink" href="https://github.com/opengapps/opengapps/wiki/Notes-for-Android-10.x">
												<i class="material-icons">
													&#xE895;
												</i>
											</a>
										</span>
									</label>
								</td>
							</tr>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="9.0" id="l9.0">
										<input checked id="9.0" name="api" type="radio" value="9.0" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											9.0
											<a class="wikilink" href="https://github.com/opengapps/opengapps/wiki/Notes-for-Android-9.x">
												<i class="material-icons">
													&#xE895;
												</i>
											</a>
										</span>
									</label>
								</td>
							</tr>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="8.1" id="l8.1">
										<input id="8.1" name="api" type="radio" value="8.1" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											8.1
											<a class="wikilink" href="https://github.com/opengapps/opengapps/wiki/Notes-for-Android-8.x">
												<i class="material-icons">
													&#xE895;
												</i>
											</a>
										</span>
									</label>
								</td>
							</tr>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="8.0" id="l8.0">
										<input id="8.0" name="api" type="radio" value="8.0" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											8.0
											<a class="wikilink" href="https://github.com/opengapps/opengapps/wiki/Notes-for-Android-8.x">
												<i class="material-icons">
													&#xE895;
												</i>
											</a>
										</span>
									</label>
								</td>
							</tr>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="7.1" id="l7.1">
										<input id="7.1" name="api" type="radio" value="7.1" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											7.1
											<a class="wikilink" href="https://github.com/opengapps/opengapps/wiki/Notes-for-Android-7.x">
												<i class="material-icons">
													&#xE895;
												</i>
											</a>
										</span>
									</label>
								</td>
							</tr>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="7.0" id="l7.0">
										<input id="7.0" name="api" type="radio" value="7.0" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											7.0
											<a class="wikilink" href="https://github.com/opengapps/opengapps/wiki/Notes-for-Android-7.x">
												<i class="material-icons">
													&#xE895;
												</i>
											</a>
										</span>
									</label>
								</td>
							</tr>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="6.0" id="l6.0">
										<input id="6.0" name="api" type="radio" value="6.0" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											6.0
											<a class="wikilink" href="https://github.com/opengapps/opengapps/wiki/Notes-for-Android-6.0">
												<i class="material-icons">
													&#xE895;
												</i>
											</a>
										</span>
									</label>
								</td>
							</tr>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="5.1" id="l5.1">
										<input id="5.1" name="api" type="radio" value="5.1" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											5.1
										</span>
									</label>
								</td>
							</tr>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="5.0" id="l5.0">
										<input id="5.0" name="api" type="radio" value="5.0" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											5.0
											<a class="wikilink" href="https://github.com/opengapps/opengapps/wiki/Notes-for-Android-5.0">
												<i class="material-icons">
													&#xE895;
												</i>
											</a>
										</span>
									</label>
								</td>
							</tr>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="4.4" id="l4.4">
										<input id="4.4" name="api" type="radio" value="4.4" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											4.4
											<a class="wikilink" href="https://github.com/opengapps/opengapps/wiki/Notes-for-Android-4.4">
												<i class="material-icons">
													&#xE895;
												</i>
											</a>
										</span>
									</label>
								</td>
							</tr>
						</tbody>
					</table>
					<table id="tv" class="dt mdl-data-table mdl-js-data-table">
						<thead>
							<tr>
								<th class="mdl-data-table__cell--non-numeric">
									<span id="tvariant">
										<a href="https://github.com/opengapps/opengapps/wiki/Package-Comparison">
											<strong>
												包类型
											</strong>
										</a>
										:
									</span>
								</th>
							</tr>
						</thead>
						<tbody>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="aroma"
									id="laroma">
										<input id="aroma" name="variant" type="radio" value="aroma" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											自定义
											<a class="wikilink" href="https://github.com/opengapps/opengapps/wiki/Aroma-Package">
												<i class="material-icons">
													&#xE895;
												</i>
											</a>
										</span>
									</label>
								</td>
							</tr>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="super"
									id="lsuper">
										<input id="super" name="variant" type="radio" value="super" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											超级
											<a class="wikilink" href="https://github.com/opengapps/opengapps/wiki/Super-Package">
												<i class="material-icons">
													&#xE895;
												</i>
											</a>
										</span>
									</label>
								</td>
							</tr>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="stock"
									id="lstock">
										<input checked id="stock" name="variant" type="radio" value="stock" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											Pixel
											<a class="wikilink" href="https://github.com/opengapps/opengapps/wiki/Stock-Package">
												<i class="material-icons">
													&#xE895;
												</i>
											</a>
										</span>
									</label>
								</td>
							</tr>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="full"
									id="lfull">
										<input id="full" name="variant" type="radio" value="full" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											较多
											<a class="wikilink" href="https://github.com/opengapps/opengapps/wiki/Full-Package">
												<i class="material-icons">
													&#xE895;
												</i>
											</a>
										</span>
									</label>
								</td>
							</tr>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="mini"
									id="lmini">
										<input id="mini" name="variant" type="radio" value="mini" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											多
											<a class="wikilink" href="https://github.com/opengapps/opengapps/wiki/Mini-Package">
												<i class="material-icons">
													&#xE895;
												</i>
											</a>
										</span>
									</label>
								</td>
							</tr>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="micro"
									id="lmicro">
										<input id="micro" name="variant" type="radio" value="micro" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											较少
											<a class="wikilink" href="https://github.com/opengapps/opengapps/wiki/Micro-Package">
												<i class="material-icons">
													&#xE895;
												</i>
											</a>
										</span>
									</label>
								</td>
							</tr>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="nano"
									id="lnano">
										<input id="nano" name="variant" type="radio" value="nano" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											少
											<a class="wikilink" href="https://github.com/opengapps/opengapps/wiki/Nano-Package">
												<i class="material-icons">
													&#xE895;
												</i>
											</a>
										</span>
									</label>
								</td>
							</tr>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="pico"
									id="lpico">
										<input id="pico" name="variant" type="radio" value="pico" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											微小
											<a class="wikilink" href="https://github.com/opengapps/opengapps/wiki/Pico-Package">
												<i class="material-icons">
													&#xE895;
												</i>
											</a>
										</span>
									</label>
								</td>
							</tr>
							<tr>
								<td class="mdl-data-table__cell--non-numeric">
									<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="tvstock"
									id="ltvstock">
										<input id="tvstock" name="variant" type="radio" value="tvstock" class="mdl-radio__button"
										/>
										<span class="mdl-radio__label">
											电视
											<a class="wikilink" href="https://github.com/opengapps/opengapps/wiki/TVStock-Package">
												<i class="material-icons">
													&#xE895;
												</i>
											</a>
										</span>
									</label>
								</td>
							</tr>
						</tbody>
					</table>
				</form>
				<div class="downloadbuttons">
					<button id="bdownload" class="mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored mdl-shadow--2dp"
					disabled>
						<i class="material-icons">
							file_download
						</i>
					</button>
					<div id="package-latest">
						<div id="package-progressbar" class="mdl-progress mdl-js-progress mdl-progress__indeterminate progress-demo">
						</div>
						<span class="mdl-typography--caption-color-contrast">
							请求 API 中...
						</span>
					</div>
					<button id="bmirrors" class="mdl-button mdl-js-button mdl-button--accent"
					disabled>
						下载节点
					</button>
					<br />
					<button id="bversion" class="mdl-button mdl-js-button mdl-button--accent"
					disabled>
						版本信息
					</button>
					<br />
					<button id="bmd5" class="mdl-button mdl-js-button mdl-button--accent"
					disabled>
						MD5校验
					</button>
					<br />
					<button id="breport" class="mdl-button mdl-js-button mdl-button--accent"
					disabled>
						来源报告
					</button>
					<br />
					<a id="bolderlink">
						<button id="bolder" class="mdl-button mdl-js-button mdl-button--accent"
						disabled>
							旧版本
						</button>
					</a>
				</div>
			</div>
		</div>
	</section>
	<section class="mdl-layout__tab-panel mdsection" id="supportsection">
		<p>
			OpenGApps.org可用的各种支持渠道的列表
			套餐：
		</p>
		<ul>
			<li>
				<a href="https://github.com/opengapps/opengapps/wiki/FAQ">
					Open GApps 问答
				</a>
			</li>
			<li>
				<a href="https://github.com/opengapps/opengapps/wiki">
					Open GApps 维基
				</a>
			</li>
			<li>
				<a href="https://forum.xda-developers.com/showthread.php?t=3124506">
					XDA 论坛 Open GApps Q&amp;A 帖子
				</a>
			</li>
			<li>
				<a href="https://forum.xda-developers.com/android/software/Open-GApps-t3098071">
					XDA 论坛 Open GApps 开发者 帖子
				</a>
			</li>
			<li>
				<a href="https://gitter.im/opengapps/general">
					Open GApps Gitter 聊天室
				</a>
			</li>
		</ul>
		<h4 id="download-speed">
			下载速度
		</h4>
		<p>
			所有发布都使用 
			<a href="https://help.github.com/articles/about-releases/">
				GitHub 的发布功能
			</a>
			托管。 GitHub的版本托管在Amazon的S3 US-East服务器上。 如果下载速度较慢，则是由于ISP与美国东部地区之间的连接受限。 如果下载中断，则可以尝试使用下载管理器，直到ISP或GitHub / Amazon找到改善与您所在地区的连接的解决方案为止。 将github.com/opengapps/ URL添加到您的下载管理器中，而不是Amazon S3 URL，以支持连续下载。
		</p>
		<h4 id="changelog">
			变更日志
		</h4>
		<p>
			Open GApps更改日志汇总在
			<a href="https://twitter.com/opengapps/">
				Open GApps Twitter 资讯
			</a>
			上。
		</p>
		<h4 id="questions">
			问题
		</h4>
		<p>
			如果您有任何疑问，请查看
			<a href="https://github.com/opengapps/opengapps/wiki">
				Open GApps Wiki
			</a>
			，尤其是
			<a href="https://github.com/opengapps/opengapps/wiki/FAQ">
				FAQ
			</a>
			回答大多数问题。 如果您找不到问题的答案，请使用
			<a href="https://forum.xda-developers.com/showthread.php?t=3124506">
				XDA Q&amp;A 帖子
			</a>
			或加入
			<a href="https://gitter.im/opengapps/general">
				Gitter
			</a>
			，以获取支持。 
			<em>
			不要忘记至少添加Open GApps安装程序调试日志，并且在遇到“强制关闭”的情况下还包括logcat。
			</em>
		</p>
		<h4 id="bugs">
			Bug
		</h4>
		<p>
			如果您在预建的OpenGApps.org软件包中发现了错误，则可以在
			<a href="https://forum.xda-developers.com/android/software/Open-GApps-t3098071">
				XDA Open GApps 开发者 帖子
			</a>
			上报告该错误。
			<em>
				请记住，至少要包括Open GApps安装程序调试日志，如果适用，还应包括logcat。
			</em>
		</p>
		<p>
			如果您在使用OpenGApps.org预制软件包时遇到问题，请
			<strong>
				不要
			</strong>
			直接为The Open GApps Project提交任何GitHub问题。 GitHub问题跟踪器仅用于与The Open GApps Project编译器脚本本身有关的问题。
		</p>
	</section>
	<section class="mdl-layout__tab-panel mdsection" id="aboutsection">
		<p>
			Open GApps项目是一项开放源代码的工作，用于编写自动生成最新Google Apps软件包的脚本。
在OpenGApps.org上，您可以找到有关项目工作以及OpenGApps.org buildbot生成的预构建Google Apps软件包的更多信息。
			<br />
			在OpenGApps.org上，您可以找到有关项目工作以及OpenGApps.org 构建机器人生成的预构建Google Apps软件包的更多信息。
		</p>
		<p>
			有关Open GApps软件包特征的一些要点：
		</p>
		<ul>
			<li>
				支持所有平台和所有Android版本
			</li>
			<li>
				针对
				<strong>
					所有
				</strong>
				Google软件包进行DPI优化的支持（与其他GApp不同）
			</li>
			<li>
				经常更新的Google Apps：预制的OpenGApps.org软件包每（欧洲）晚更新一次（如果有可用的更新的Google Apps）
			</li>
			<li>
				强大的压缩功能，即使是最完整的软件包，也允许相对较小的下载量
			</li>
			<li>
				自动备份：刷新ROM更新时，无需重新刷新Google Apps。 大多数ROM支持此（addon.d）功能
			</li>
			<li>
				安装程序会检查您设备的功能，例如系统分区大小。 如果发现任何问题，它将在进行任何更改之前通知您
			</li>
			<li>
				从Google超级套餐（包括Google设备上曾经发售的所有应用程序）到与最新，最完整的Pixel上找到的应用程序集相等的Pixel包，到更小巧的软件包和AROMA软件包，有几种不同的软件包版本。 允许以图形方式选择要安装的内容
			</li>
			<li>
				一种特殊的“ for Stock ROM”安装模式，可用于更新符合原始Google Pixel文件系统结构的Pixel ROM上的Google Apps
			</li>
			<li>
				使用我们独有的
				<a href="https://github.com/opengapps/opengapps/wiki/Advanced-Features-and-Options">
					高级功能和选项
				</a>
				，可以根据您的个人喜好定制所有软件包安装
			</li>
		</ul>
		<p>
			请注意，Open GApps并未为您提供软件包中所含Google APK的任何许可。 Open GApps程序包仅提供了一种将APK侧载到设备的便捷方法。 您有责任通过以下方式获取适当的权限： 购买预安装了Google Apps的
			<a href="https://www.openhandsetalliance.com">
				OHA
			</a>
			许可设备，和/或从
			<a href="https://play.google.com/store">
				Google Play商店
			</a>
			购买应用程序。
		</p>
		<p>
			来自OpenGApps.org的预编译软件包仅由OpenGApps.org提供，不提供任何形式的保证，其条款是它们只能免费用于个人使用，并且不得将其镜像给公众。 OpenGApps.org。
		</p>
	</section>
	<footer class="mdl-mini-footer">
		<div class="mdl-mini-footer__left-section">
			<div class="mdl-logo">
				Copyright © 2015-2020
				<a href="https://github.com/orgs/opengapps/people">
					Open GApps 团队
				</a>
				<div class="mdl-typography--caption-color-contrast" style="white-space: nowrap">
					Android是Google Inc.的商标
				</div>
			</div>
		</div>
		<div class="mdl-mini-footer__right-section">
			<a id="facebooklink" href="https://facebook.com/opengapps">
				<button class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--colored">
					<i>
						<svg style="width:24px;height:24px" viewBox="0 0 24 24">
							<path fill="currentColor" d="M17,2V2H17V6H15C14.31,6 14,6.81 14,7.5V10H14L17,10V14H14V22H10V14H7V10H10V6A4,4 0 0,1 14,2H17Z"
							/>
						</svg>
					</i>
				</button>
			</a>
			<a id="twitterlink" href="https://twitter.com/opengapps">
				<button class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--colored">
					<i>
						<svg style="width:24px;height:24px" viewBox="0 0 24 24">
							<path fill="currentColor" d="M22.46,6C21.69,6.35 20.86,6.58 20,6.69C20.88,6.16 21.56,5.32 21.88,4.31C21.05,4.81 20.13,5.16 19.16,5.36C18.37,4.5 17.26,4 16,4C13.65,4 11.73,5.92 11.73,8.29C11.73,8.63 11.77,8.96 11.84,9.27C8.28,9.09 5.11,7.38 3,4.79C2.63,5.42 2.42,6.16 2.42,6.94C2.42,8.43 3.17,9.75 4.33,10.5C3.62,10.5 2.96,10.3 2.38,10C2.38,10 2.38,10 2.38,10.03C2.38,12.11 3.86,13.85 5.82,14.24C5.46,14.34 5.08,14.39 4.69,14.39C4.42,14.39 4.15,14.36 3.89,14.31C4.43,16 6,17.26 7.89,17.29C6.43,18.45 4.58,19.13 2.56,19.13C2.22,19.13 1.88,19.11 1.54,19.07C3.44,20.29 5.7,21 8.12,21C16,21 20.33,14.46 20.33,8.79C20.33,8.6 20.33,8.42 20.32,8.23C21.16,7.63 21.88,6.87 22.46,6Z"
							/>
						</svg>
					</i>
				</button>
			</a>
			<a id="youtubelink" href="https://www.youtube.com/c/OpengappsOrg">
				<button class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--colored">
					<i>
						<svg style="width:24px;height:24px" viewBox="0 0 24 24">
							<path fill="currentColor" d="M10,16.5V7.5L16,12M20,4.4C19.4,4.2 15.7,4 12,4C8.3,4 4.6,4.19 4,4.38C2.44,4.9 2,8.4 2,12C2,15.59 2.44,19.1 4,19.61C4.6,19.81 8.3,20 12,20C15.7,20 19.4,19.81 20,19.61C21.56,19.1 22,15.59 22,12C22,8.4 21.56,4.91 20,4.4Z"
							/>
						</svg>
					</i>
				</button>
			</a>
		</div>
	</footer>
</main>
<span class="mdl-tooltip mdl-tooltip--large" for="homelink">
	OpenGApps.org Home
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="donatelink">
	Support by Donation
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="githublink">
	Source on GitHub
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="sourceforgelink">
	Hosted on SourceForge
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="xdalink">
	Community on XDA Forum
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="wikilink">
	Manual on Wiki
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="pushbulletlink">
	Follow via Pushbullet
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="bloglink">
	Open GApps Blog
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="facebooklink">
	Open GApps on Facebook
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="twitterlink">
	Open GApps on Twitter
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="youtubelink">
	Open GApps on YouTube
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="adlabelheader">
	Ads help us to keep OpenGApps.org packages free
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="adlabelfooter">
	Ads help us to keep OpenGApps.org packages free
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="adlabel">
	Ads help us to keep OpenGApps.org packages free
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="tplatform">
	CPU架构； 如果您不知道自己的平台，请选择
	<em>
		ARM
	</em>
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="larm">
	<em>
		ARM
	</em>
	used to be the most popular 32-bit platform
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="larm64">
	<em>
		ARM64
	</em>
	is supported by most devices released since 2016 and the most popular
	64-bit platform
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="lx86">
	<em>
		x86
	</em>
	is less common, but used on e.g. the Zenfone
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="lx86_64">
	<em>
		x86_64
	</em>
	is very uncommon, but used on e.g. some Android emulators
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="tandroid">
	Android Version; In
	<em>
		Settings→About→Android version
	</em>
	you can find the major version of your installed Android OS
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="l4.4">
	<em>
		4.4 stock & full
	</em>
	installs some applications on /data/ instead of /system/
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="l7.0">
	<em>
		7.0
	</em>
	requires a patched ROM for proper WebView support
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="l7.1">
	<em>
		7.1
	</em>
	requires a patched ROM for proper WebView support
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="l8.0">
	<em>
		8.0
	</em>
	requires a patched ROM for proper WebView support
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="l8.1">
	<em>
		8.1
	</em>
	requires a patched ROM for proper WebView support
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="l9.0">
	<em>
		9.0
	</em>
	requires a patched ROM for proper WebView support
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="l10.0">
	<em>
		10.0
	</em>
	has some known issues and only pico, nano, micro and tvstock builds at
	the moment
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="tvariant">
	Package Variant; The set of applications differs per variant,
	<em>
		click for a comparison-table
	</em>
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="laroma">
	Graphical installer of the
	<em>
		super
	</em>
	package, allows to select which applications to install
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="lsuper">
	For those who want everything, includes all Google Apps that were ever
	shipped on a Google device
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="lstock">
	Recommended package for recent devices, includes all Google Apps that
	come standard on the latest Nexus Phone
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="lfull">
	Very similar to
	<em>
		stock
	</em>
	, but does not replace non-Google stock-applications
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="lmini">
	Smaller set of Google Apps: the most popular applications plus extra functionality
	that is not available from the Play Store
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="lmicro">
	Limited set of Google Apps: Gmail, Calendar, Google Now plus extra functionality
	that is not available from the Play Store
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="lnano">
	Minimal installation, but including the extra functionality that is not
	available from the Play Store
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="lpico">
	The bare minimum to get Google Play functionality
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="ltvstock">
	Package for Android TV devices, includes all Google Apps that come standard
	on the latest Nexus Player
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="package-latest">
	Date of the latest release of the selected package
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="bdownload">
	Download selected Open GApps package
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="bmirrors">
	SourceForge mirrors for the selected package
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="bversion">
	Buildlog with version information of the applications and libraries used
	during the creation of the selected package
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="bmd5">
	Download a md5 checksum file that can be used by the Android device's
	recovery to verify the integrity of the selected package
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="breport">
	Detailed version information of the applications used for the daily build
	of the selected platform architecture and android version
</span>
<span class="mdl-tooltip mdl-tooltip--large" for="bolder">
	List all older releases for this platform architecture
</span>
</div>
<div aria-live="assertive" aria-atomic="true" aria-relevant="text" class="mdl-snackbar mdl-js-snackbar"><div class="mdl-snackbar__text"></div><button type="button" class="mdl-snackbar__action"></button></div>
<script type="text/javascript">var archs = ['arm','arm64','x86','x86_64',];
var apis = ['10.0','9.0','8.1','8.0','7.1','7.0','6.0','5.1','5.0','4.4',];
var variants = ['aroma','super','stock','full','mini','micro','nano','pico','tvstock',];
var packages = {};
Array.prototype.has = function has(o) {
    return this.indexOf(o) !== -1;
};
Object.prototype.each = function each(key, cb) {
    var test = function (el) {
        if (!!el[key]) {
            cb(el);
        }
    };
    if (typeof this.length === 'number') {
        for (var i = 0; i < this.length; i++) {
            test(this[i]);
        }
    } else {
        for (var i in this) {
            if (this.hasOwnProperty(i)) {
                test(this[i]);
            }
        }
    }
};
var storage = window.localStorage;
try {
    storage.setItem('__test_key', '__test_val');
    if (storage.getItem('__test_key') !== '__test_val') {
        throw 'getItem test failed';
    }
    storage.removeItem('__test_key');
} catch (e) {
    storage = {
        getItem: function () {
            return null;
        },
        setItem: function () {},
        removeItem: function () {}
    };
}
var arch = getUrlParam('arch');
var autoAllowArch = archs.has(arch);
if (!autoAllowArch) {
    arch = storage.getItem('arch') || 'arm64';
}
document
    .getElementById(arch)
    .checked = true;
var api = getUrlParam('api');
var autoAllowApi = apis.has(api);
if (!autoAllowApi) {
    var ua = (!!navigator.userAgent
        ? navigator.userAgent
        : '').match(/Android ((\d\.\d)(\.\d)?)/i) || [];
    api = storage.getItem('api') || (apis.has(ua[1])
        ? ua[1]
        : (apis.has(ua[2])
            ? ua[2]
            : '9.0'));
}
document
    .getElementById(api)
    .checked = true;
var variant = getUrlParam('variant');
var autoAllowVariant = variants.has(variant);
if (!autoAllowVariant) {
    variant = storage.getItem('variant') || 'stock';
}
document
    .getElementById(variant)
    .checked = true;
var download = getUrlParam('download') === 'true';
var autoDownload = download && autoAllowArch && autoAllowApi && autoAllowVariant;
if (download && !autoDownload) {
    alert('Automatic download requested but refused: Unexpected value for ' +
            [
        autoAllowArch
            ? null
            : 'arch',
        autoAllowApi
            ? null
            : 'api',
        autoAllowVariant
            ? null
            : 'variant'
    ].filter(function (o) {
        return o !== null;
    }).join(' & ') +
            '.');
}
function getCookie(key) {
    key += '=';
    var cs = document
        .cookie
        .split(';');
    for (var i = 0; i < cs.length; i++) {
        var c = cs[i].trim();
        if (c.substr(0, key.length) === key) {
            return c
                .substr(key.length)
                .trim();
        }
    }
    return '';
}
function setCookie(key, value, days) {
    var d = new Date();
    d.setTime(d.getTime() +
            (days * 24 * 60 * 60 * 1000));
    document.cookie = key +
            '=' +
            value +
            '; expires=' +
            d.toUTCString();
}
var isApp = getUrlParam('app') === 'true';
function redirectToFile(eventCategory, eventLabel) {
    gaEvent(eventCategory, 'download', eventLabel, function () {
        var baselink = ''
        switch (eventCategory) {
            case 'GApps':
                baselink = packages[arch]
                    .apis[api][variant]
                    .zip;
                break;
            case 'MD5':
                baselink = packages[arch]
                    .apis[api][variant]
                    .md5;
                break;
            case 'Version':
                baselink = packages[arch]
                    .apis[api][variant]
                    .version_info;
                break;
            case 'Report':
                baselink = packages[arch]
                    .apis[api][variant]
                    .source_report;
                break;
            default:
                return;
        }
        location.assign(getDownloadLink(baselink));
    }, 1000);
}
const getDownloadLink = (baselink) => {
    return `${baselink}?r=&ts=${getTimestamp()}&use_mirror=autoselect`
}
function getTimestamp() {
    var d = new Date();
    return Math.floor(d.getTime() / 1000)
}
function redirectToUrl(targetUrl) {
    gaEventOutbound(targetUrl, function () {
        var d = true;
        if (isApp && targetUrl != 'https://opengapps.org/') {
            d = !window.open(targetUrl, '_blank');
        }
        if (d) {
            location.assign(targetUrl);
        }
    });
}
function downloadSubmit() {
    var v = validateForm();
    if (v === 'ok') {
        redirectToFile('GApps', arch +
                '-' +
                api +
                '-' +
                variant);
    }
}
function mirrorsSubmit() {
    var v = validateForm();
    if (v === 'api' || v === 'variant' || v === 'ok') {
        redirectToUrl('https://sourceforge.net/settings/mirror_choices?projectname=opengapps&filename=' +
                arch +
                '/' +
                packages[arch].dateTag +
                '/' +
                'open_gapps-' +
                arch +
                '-' +
                api +
                '-' +
                variant +
                '-' +
                packages[arch].dateTag +
                '.zip');
    }
}
function versionSubmit() {
    var v = validateForm();
    if (v === 'ok') {
        redirectToFile('Version', arch +
                '-' +
                api +
                '-' +
                variant);
    }
}
function md5Submit() {
    var v = validateForm();
    if (v === 'ok') {
        redirectToFile('MD5', arch +
                '-' +
                api +
                '-' +
                variant);
    }
}
function reportSubmit() {
    var v = validateForm();
    if (v === 'variant' || v === 'ok') {
        redirectToFile('Report', arch +
                '-' +
                api);
    }
}
function olderSubmit() {
    var v = validateForm();
    if (v === 'api' || v === 'variant' || v === 'ok') {
        redirectToUrl('https://sourceforge.net/projects/opengapps/files/' +
                arch +
                '/');
    }
}
function setButtonEnable(id, enable) {
    var el = document.getElementById(id);
    if (typeof el.MaterialButton === 'object') {
        el.MaterialButton[
            (!!enable)
                ? 'enable'
                : 'disable'
        ]();
    }
}
function setBoxEnable(id, enable) {
    var el = document
        .getElementById(id)
        .parentElement;
    if (typeof el.MaterialRadio === 'object') {
        el.MaterialRadio[
            (!!enable)
                ? 'enable'
                : 'disable'
        ]();
    }
}
function setBoxCheck(id, check) {
    var el = document
        .getElementById(id)
        .parentElement;
    if (typeof el.MaterialRadio === 'object') {
        el.MaterialRadio[
            !!check
                ? 'check'
                : 'uncheck'
        ]();
    }
}
function setAd(el, content, label) {
    el.style.cssText = 'display:block !important';
    el.innerHTML = content;
    gaEvent('Ads', 'display', label);
}
var extraAds = [];
function showSnackbar() {
    if (getCookie('c') !== 'y') {
        window
            .componentHandler
            .upgradeDom();
        var snackbar = document
            .getElementsByClassName('mdl-js-snackbar')[0]
            .MaterialSnackbar;
        snackbar.showSnackbar({
            message: 'We use cookies to share information about your use of our site with our advertising and analytics partner',
            actionHandler: function () {
                setCookie('c', 'y', 365);
                snackbar.cleanup_();
            },
            actionText: 'Got it!',
            timeout: 60000
        });
    }
}
function validateAds() {
    var ads = document.getElementsByClassName('adsbygoogle');
    var donateTextOnFirst = Math.random() < 0.5;
    var donateTextElement = ads[
        donateTextOnFirst
            ? 0
            : 1
    ];
    var fallbackAdElement = ads[
        donateTextOnFirst
            ? 1
            : 0
    ];
    if (!donateTextElement || !fallbackAdElement) {
        setTimeout(validateAds, 500);
        return;
    }
    if (donateTextElement.innerHTML.trim().length === 0) {
        var donateTitles = ['Please Donate!', 'Support Open GApps'];
        setAd(donateTextElement.parentElement, '<div id="donatebox"><div id="donatetitle" class="mdl-typography--display-1"><a href="#" onclick="window.paypal();return false;" title="The project is supported by donations and advertisements">' +
                donateTitles[Math.round(Math.random())] +
                '</a></div><br /><div id="donatebody" class="mdl-typography--body-1">You blocked the advertisements, that is OK. But please consider a <a href="#" onclick="window.paypal();return false;">donation</a> to the project instead!</div><div id="donatespace"><br /></div><a href="#" onclick="window.paypal();return false;"><div id="donaterectangle"><i class="material-icons" style="color:#f5f5f5">favorite</i></div></a><br /><div id="donatecaption" class="mdl-typography--caption-color-contrast">The advertisement revenue supports the projects\' efforts. Can\'t donate? <a href="abp:subscribe?location=http%3A%2F%2Fopengapps.org%2Fopengapps.org.abp.txt&amp;title=Open%20GApps" title="Add opengapps.org to your Adblocker\'s whitelist">Please unblock our ads!</a></div></div>', 'Donate');
    } else {
        gaEvent('Ads', 'display', 'AdSense' +
                (donateTextOnFirst
            ? 'Header'
            : 'Footer'));
    }
    if (fallbackAdElement.innerHTML.trim().length === 0) {
        if (extraAds.length > 0) {
            var fallbackAd = extraAds[Math.floor(Math.random() * extraAds.length)];
            setAd(fallbackAdElement.parentElement, '<div id="extrabox"><a id="extralink" href="' +
                    fallbackAd.targetUrl +
                    '"><img src="/images/' +
                    fallbackAd.imgName +
                    '.' +
                    (fallbackAdElement.parentElement.id || 'topa') +
                    '.png" alt="' +
                    fallbackAd.altText +
                    '" title="' +
                    fallbackAd.titleText +
                    '" /></a></div>', 'Campaign' +
                    fallbackAd.name);
        } else {
            gaEvent('Ads', 'display', 'NoCampaign');
        }
    } else {
        gaEvent('Ads', 'display', 'AdSense' +
                (donateTextOnFirst
            ? 'Footer'
            : 'Header'));
    }
}
function validateForm() {
    var form = document.getElementById('DownloadForm');
    form
        .arch
        .each('checked', function (el) {
            arch = el.value;
        });
    if (!archs.has(arch) || packages[arch] === undefined) {
        return 'arch';
    }
    storage.setItem('arch', arch);
    form
        .api
        .each('checked', function (el) {
            api = el.value;
        });
    if (!apis.has(api) || packages[arch].apis[api] === undefined) {
        return 'api';
    }
    storage.setItem('api', api);
    form
        .variant
        .each('checked', function (el) {
            variant = el.value;
        });
    if (!variants.has(variant) || packages[arch].apis[api][variant] === undefined) {
        return 'variant';
    }
    storage.setItem('variant', variant);
    return 'ok';
}
function updateButtons() {
    var v = validateForm();
    var ch = window.componentHandler;
    ch.upgradeDom();
    var info = document.getElementById('package-latest');
    if (v === 'arch') {
        info.innerHTML = '<div id="package-progressbar" class="mdl-progress mdl-js-progress mdl-progress__indeterminate progress-demo"></div><span class="mdl-typography--caption-color-contrast">Querying package API...</span>';
    } else if (v === 'api') {
        info.innerHTML = '<span class="mdl-typography--subhead-color-contrast">Select an Android version</span>';
    } else if (v === 'variant') {
        info.innerHTML = '<span class="mdl-typography--subhead-color-contrast">Select a variant</span>';
    } else {
        info.innerHTML = '<span class="mdl-typography--headline">' +
                packages[arch].dateHuman;
    }
    ch.upgradeDom();
    var hasApi = function (a) {
        return v !== 'arch' && packages[arch]
            .apis
            .hasOwnProperty(a);
    };
    for (var iApi = 0; iApi < apis.length; iApi++) {
        setBoxEnable(apis[iApi], hasApi(apis[iApi]));
    }
    setBoxCheck(api, hasApi(api));
    var hasVariant = function (a) {
        return v !== 'arch' && v !== 'api' && packages[arch]
            .apis[api]
            .hasOwnProperty(a);
    };
    for (var iVariant = 0; iVariant < variants.length; iVariant++) {
        setBoxEnable(variants[iVariant], hasVariant(variants[iVariant]));
    }
    setBoxCheck(variant, hasVariant(variant));
    setButtonEnable('bdownload', v === 'ok');
    setButtonEnable('bmirrors', v === 'ok');
    setButtonEnable('bversion', v === 'ok');
    setButtonEnable('bmd5', v === 'ok');
    setButtonEnable('breport', v === 'ok');
    setButtonEnable('bolder', v === 'ok' || v === 'variant' || v === 'api');
}
function queryRelease() {
    document
        .getElementById('DownloadForm')
        .arch
        .each('checked', function (el) {
            arch = el.value;
        });
    storage.setItem('arch', arch);
    delete packages;
    updateButtons();
    var httpRequest = new XMLHttpRequest();
    httpRequest.onreadystatechange = function () {
        if (httpRequest.readyState === XMLHttpRequest.DONE && httpRequest.status === 200) {
            var data = JSON.parse(httpRequest.responseText);
            packages[arch] = {
                'apis': {},
                'dateTag': data
                    .archs[arch]
                    .date,
                'dateHuman': data
                    .archs[arch]
                    .human_date
            };
            for (var pkgApi in data.archs[arch].apis) {
                if (pkgApi === 'each') {
                    continue
                }
                if (packages[arch].apis[pkgApi] === undefined) {
                    packages[arch].apis[pkgApi] = {};
                }
                for (var iVariant = 0; iVariant < data.archs[arch].apis[pkgApi].variants.length; iVariant++) {
                    var pkgVariant = data
                        .archs[arch]
                        .apis[pkgApi]
                        .variants[iVariant];
                    packages[arch].apis[pkgApi][pkgVariant.name] = {
                        'zip': pkgVariant.zip,
                        'zip_size': Math.round(pkgVariant.zip_size / 1024 / 1024 * 100) / 100 +
                                ' MiB',
                        'md5': pkgVariant.md5,
                        'version_info': pkgVariant.version_info,
                        'source_report': pkgVariant.source_report
                    };
                }
            }
            updateButtons();
            if (autoDownload) {
                downloadSubmit();
                autoDownload = false;
            }
        }
    };
    httpRequest.open('GET', 'https://api.opengapps.org/list');
    try {
        httpRequest.send();
    } catch (e) {}
}
function materialTabsNav() {
    'use strict';
    this.element_ = document.querySelector('.mdl-layout'),
    this.element_ && (this.tabLinks = this.element_.querySelectorAll('.mdl-layout__tab'), this.activeLink = null, this.activePage = null, this.init())
}
materialTabsNav.prototype.linksMap_ = {},
materialTabsNav.prototype.CssClasses_ = {
    ACTIVE: 'is-active'
},
materialTabsNav.prototype.init = function () {
    'use strict';
    for (var t = 0; t < this.tabLinks.length; t++) 
        this
            .tabLinks[t]
            .addEventListener('click', this.clickHandler(this.tabLinks[t])),
        this.linksMap_[
            '#' +
                    this
                .tabLinks[t]
                .href
                .split('#')[1]
        ] = this.tabLinks[t];
    if (this.displaySectionForFragment(window.location.hash.split('/')[0]), 'onhashchange' in window) {
        var s = this;
        window.onhashchange = function () {
            s.displaySectionForFragment(window.location.hash.split('/')[0])
        }
    }
},
materialTabsNav.prototype.displaySectionForFragment = function (t) {
    'use strict';
    t && this.linksMap_[t] && this
        .linksMap_[t]
        .click
            ? this
                .linksMap_[t]
                .click()
            : t && '' !== t && '#' !== t || this.displayIndexPage()
},
materialTabsNav.prototype.displayIndexPage = function () {
    'use strict';
    this.activeLink && this
        .activeLink
        .classList
        .remove(this.CssClasses_.ACTIVE),
    this.activeLink = null,
    this.activePage && this
        .activePage
        .classList
        .remove(this.CssClasses_.ACTIVE),
    this.activePage = this
        .element_
        .querySelector('#downloadsection'),
    this
        .activePage
        .classList
        .add(this.CssClasses_.ACTIVE)
},
materialTabsNav.prototype.clickHandler = function (t) {
    'use strict';
    return function (s) {
        s.preventDefault();
        var i = this.findPage(t);
        this.activePage && this
            .activePage
            .classList
            .remove(this.CssClasses_.ACTIVE),
        this.activeLink && this
            .activeLink
            .classList
            .remove(this.CssClasses_.ACTIVE),
        this.activePage = i,
        this.activeLink = t,
        t
            .classList
            .add(this.CssClasses_.ACTIVE),
        i
            .classList
            .add(this.CssClasses_.ACTIVE);
        var e = window
                .location
                .hash
                .split('/')[0],
            n = t
                .href
                .split('#')[1];
        return e !== '#' +
                n && (history.pushState(null, 'The Open GApps Project', t), document.getElementById('content').scrollTop = 0, ga && ga('send', 'pageview', location.pathname +
                n)),
        !0
    }.bind(this)
},
materialTabsNav.prototype.findPage = function (t) {
    'use strict';
    var s = t
        .href
        .split('#')[1];
    return this
        .element_
        .querySelector('#' +
                s)
},
window.addEventListener('load', function () {
    'use strict';
    window
        .componentHandler
        .upgradeDom();
    new materialTabsNav
});
document.addEventListener('DOMContentLoaded', function () {
    window
        .componentHandler
        .upgradeDom();
    try {
        (adsbygoogle = window.adsbygoogle || []).push({google_ad_client: 'ca-pub-9489060368971640', enable_page_level_ads: true})
    } catch (e) {};
    for (var iAd = 0; iAd < document.getElementsByClassName('adsbygoogle').length; iAd++) {
        try {
            (window.adsbygoogle || []).push({});
        } catch (e) {
            validateAds();
            break;
        }
    }
    queryRelease();
    showSnackbar();
    document.addEventListener('click', function (e) {
        var target = e.target || e.srcElement;
        var href = target.href;
        if (target.tagName.toLowerCase() === 'a' && href.toLowerCase().substr(0, 4) === 'http') {
            if (target.getAttribute('href') === '#') {
                e.preventDefault();
            } else if (target.target === '_blank' || e.ctrlKey || e.shiftKey || e.altKey || e.metaKey || e.button === 1) {
                gaEventOutbound(target.href);
            } else {
                e.preventDefault();
                redirectToUrl(target.href);
            }
        }
    });
    var meta = document.createElement('meta');
    meta.name = "referrer";
    meta.content = "no-referrer";
    document
        .getElementsByTagName('head')[0]
        .appendChild(meta);
    document
        .getElementById('bdownload')
        .addEventListener('click', downloadSubmit);
    document
        .getElementById('bmirrors')
        .addEventListener('click', mirrorsSubmit);
    document
        .getElementById('bversion')
        .addEventListener('click', versionSubmit);
    document
        .getElementById('bmd5')
        .addEventListener('click', md5Submit);
    document
        .getElementById('breport')
        .addEventListener('click', reportSubmit);
    document
        .getElementById('bolder')
        .addEventListener('click', olderSubmit);
    var inputs = document.getElementsByTagName('input');
    for (var iInput = 0; iInput < inputs.length; iInput++) {
        var input = inputs[iInput];
        switch (input.name) {
            case 'arch':
                input.addEventListener('change', queryRelease);
                break;
            case 'api':
            case 'variant':
                input.addEventListener('change', updateButtons);
                break;
        }
    }
    if (isApp) {
        var links = document.getElementsByTagName('a');
        for (var iLink = 0; iLink < links.length; iLink++) {
            var link = links[iLink];
            if (document.querySelectorAll('[data-mdl-for="' +
                    link.id +
                    '"]').length === 0 && link.href != 'https://opengapps.org/') {
                link.target = '_blank';
            } else if (link.href == 'https://opengapps.org/') {
                link.href = 'https://opengapps.org/?app=true';
            }
        }
        var forms = document.getElementsByTagName('form');
        for (var iForm = 0; iForm < forms.length; iForm++) {
            if (forms[iForm].id !== 'DownloadForm') {
                forms[iForm].target = '_blank';
            }
        }
    }
});
window.onload = function () {
    setTimeout(validateAds, 2000);
};
function gaEvent(eventCategory, eventAction, eventLabel, cb, timeoutMillis) {
    var acted = false;
    var act = function () {
        if (acted) {
            return;
        }
        (cb || function () {})();
        acted = true;
    };
    try {
        ga('send', 'event', eventCategory, eventAction, eventLabel, {hitCallback: act});
        setTimeout(act, timeoutMillis || 1);
    } catch (e) {
        act();
    }
}
function gaEventOutbound(targetUrl, cb) {
    gaEvent('Outbound', 'open', targetUrl, cb || function () {}, 1000);
}
function getUrlParam(param) {
    var vars = window
        .location
        .search
        .substring(1)
        .split('&');
    for (var i = 0; i < vars.length; i++) {
        var parts = vars[i].split('=');
        if (parts[0] === param) {
            var part = parts[1] || '';
            if (part.substr(part.length - 1, 1) === '/') {
                part = part.substr(0, part.length - 1);
            }
            return part;
        }
    }
    return null;
}(function (i, s, o, g, r, a, m) {
    i.GoogleAnalyticsObject = r;
    i[r] = i[r] || function () {
        (i[r].q = i[r].q || []).push(arguments);
    };
    i[r].l = 1 * new Date();
    a = s.createElement(o);
    m = s.getElementsByTagName(o)[0];
    a.async = 1;
    a.src = g;
    m
        .parentNode
        .insertBefore(a, m);
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-63785067-1', 'auto');
ga('send', 'pageview', location.pathname);
window.paypal = function paypal() {
    gaEventOutbound('https://www.paypal.com/cgi-bin/webscr');
    document
        .getElementById('paypal')
        .submit();
    return false;
};
</script>
<script type="text/javascript" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<script async defer type="text/javascript" src="https://apis.google.com/js/platform.js"></script>
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:400,400italic,500,700" />
<form id="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post"><input name="cmd" type="hidden"
        value="_s-xclick"><input name="encrypted" type="hidden"
        value="-----BEGIN PKCS7-----MIIHTwYJKoZIhvcNAQcEoIIHQDCCBzwCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYCGaRNSm4fefJmw8J9i0V5qHZI/hoJwy1wdZ9ZkIQx3BpSeF2rYdJw45X4asiA5pq690BHCzm/bYSmwnW3z7beriA+ya+7tRCe6S7I7aH7HUZr51GE7Qjk92lMEF3nDJfE6067mlr+haVbMnEJIy73wLkV56+X1tlr7fSQAwQ9uIDELMAkGBSsOAwIaBQAwgcwGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIrMFfef0kmGOAgagNaCsDHXSoWGEFEcNFFDtnkH5uPPTJMTm85/Pxg/Qov3xKM+NfdoX3jj/XYQWuWtLzvK4lLruT1UtP6CnCw7FStb3CakXyGdQeG+IGCf7Vonw0iOs+a7r+ltS3NpAueh0//jsCFVkrUMMblNkSEAgwEcZVY7liLIf5BNR4mN4IA1ghgS8WKwxqdSdddr4+Q+uetEfY1/SDI328LYs7h2A5egb9tTY/YpugggOHMIIDgzCCAuygAwIBAgIBADANBgkqhkiG9w0BAQUFADCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20wHhcNMDQwMjEzMTAxMzE1WhcNMzUwMjEzMTAxMzE1WjCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMFHTt38RMxLXJyO2SmS+Ndl72T7oKJ4u4uw+6awntALWh03PewmIJuzbALScsTS4sZoS1fKciBGoh11gIfHzylvkdNe/hJl66/RGqrj5rFb08sAABNTzDTiqqNpJeBsYs/c2aiGozptX2RlnBktH+SUNpAajW724Nv2Wvhif6sFAgMBAAGjge4wgeswHQYDVR0OBBYEFJaffLvGbxe9WT9S1wob7BDWZJRrMIG7BgNVHSMEgbMwgbCAFJaffLvGbxe9WT9S1wob7BDWZJRroYGUpIGRMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbYIBADAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAIFfOlaagFrl71+jq6OKidbWFSE+Q4FqROvdgIONth+8kSK//Y/4ihuE4Ymvzn5ceE3S/iBSQQMjyvb+s2TWbQYDwcp129OPIbD9epdr4tJOUNiSojw7BHwYRiPh58S1xGlFgHFXwrEBb3dgNbMUa+u4qectsMAXpVHnD9wIyfmHMYIBmjCCAZYCAQEwgZQwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tAgEAMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNTEyMTAxNjMwNDdaMCMGCSqGSIb3DQEJBDEWBBQm6/5gdGXrRgPbGdmWfnzTHLdJZzANBgkqhkiG9w0BAQEFAASBgA3UDUL6PCiV5vJweDSQ0HWx3bFCJh1/L9yXfCT+XRd1gHZ0jHClRvrayvTFx6E0nmdG6v/1iP22vGTNR28Uy4G3l4RQXo37k/uguI5f+9YVxHG2KuuI4eiyFRhIARuEVXDLCO+D/EbrztEaLga5lGKFLEBwF5fG5nwqRej66aIz-----END PKCS7-----">
</form>
</body></html>
